// 默认导出的引入时没有花括号
// import User from './data.js';
// 常规导出的，引入时需要使用暴露时的原变量名(as起别名可以更改变量名)，而且必须使用花括号
import User, { list as List } from './data.js';
import Axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
console.log(User);
console.log(List);
export default {
  init() {
    const mock = new MockAdapter(Axios);
    mock.onPost('/loginInfo').reply(config => {
      // config.data就是前台表单中提交的数据，可以在前端中完整的包含.then promise获取到
      // 前端提交的数据config格式：
      /* 
      {url: "/loginInfo", method: "post", data: "{"name":"fafd","pwd":"fafdas"}", headers: {…}, baseURL: "http://127.0.0.1:8888/v2/", …}
      */
      console.log(config);
      console.log(config.data); //config.data是字符串，先转换成对象，才能使用obj[key]取值
      // JSON.parse(undefined)不能处理undefind，否则报语法错误。但是，由于element ui表单预验证时，已经做了处理，所有config.data不可能是undefined
      let { name, pwd } = JSON.parse(config.data);
      // console.log(name);
      // console.log(pwd);
      return new Promise((resolve, reject) => {
        //  用timeout做个延时，模拟请求数据接口的响应时间
        setTimeout(() => {
          let user = null;
          const hasUser = User.userInfo.some(item => {
            if (item.username == name && item.password == pwd) {
              // userInfo = JSON.parse(JSON.stringify(u));
              // userInfo.pwd = undefined;
              user = item;
              return true;
            }
          });
          console.log(hasUser);
          if (hasUser) {
            //输入的账号 密码匹配模拟的后台数据
            // {status:200,data:{code:200,msg:'请求成功',user}}
            /**
             * 数组中200---status参数
             * 数组中对象---对应data,简化promise后直接获取const {data:res}
             *
             */
            // resolve([])调用，该方法里参数为数组，是拦截前台请求后，返回给前台的响应数据
            resolve([200, { code: 200, msg: '请求成功', user }]);
          } else {
            resolve([200, { code: 500, msg: '账号或密码错误' }]);
          }
        }, 500);
      });
    });
  }
};
